(display "\n========================================\n")
(define (square-tree tree)
    (cond ((null? tree) ())
          ((not (pair? tree)) (square tree))
          (else (cons (square-tree (car tree))
                      (square-tree (cdr tree))))))
(define tree (list 1 (list 2 (list 3 4) 5) (list 6 7)))
(display tree)
(newline)
(display (square-tree tree))
(newline)

(define (square-tree tree)
    (map (lambda (sub-tree)
                (if (pair? sub-tree)
                    (square-tree sub-tree)
                    (square sub-tree)))
         tree))
(display (square-tree tree))
(newline)
(display "\n========================================\n")
